package com.adee.gulimall.search.vo;

import lombok.Data;

import java.util.List;

/**
 * 封装页面传递过来的查询参数
 * 完整的查询参数：
 * keyword=小米&sort=saleCount_desc/asc&hasStock=0/1&skuPrice=400_1900&brandId=1&catalog3Id=1&attrs=1_3G:4G:5G&attrs=2_骁龙845&attrs=4_高清屏
 * 1. 全文检索：skuTitle -> keyword
 * 2. 排序：saleCount（销量）、hotScore（热度分）、skuPrice（价格）
 * 3. 过滤：hasStock（是否有货）、skuPrice（价格区间）、brandId、catalog3Id、attrs
 * 4. 聚合：attrs
 */
@Data
public class SearchParam {
    // 页面传递过来的参数，全文匹配关键字，匹配 skuTitle
    private String keyword;
    // 三级分类id
    private Long catelog3Id;
    // 排序条件
    /**
     * 排序条件，只取一个
     * 销量：sort=saleCount_desc 或 sort=saleCount_asc
     * 热度分：sort=hotScore_desc 或 sort=hotScore_asc
     * 价格：sort=skuPrice_desc 或 sort=skuPrice_asc
     */
    private String sort;

    // 多个过滤
    /**
     * hasStock（是否有货）：hasStock=0 或 hasStock=1
     * skuPrice（价格区间）：skuPrice=400_1900（400到1900），skuPrice=_1900（1900以下），skuPrice=400_（400以上）
     * brandId（品牌id，可传多个值）：brandId=1&brandId=10&brandId=23
     * catalog3Id（三级分类id）：上面已有
     * attrs（筛选属性）：attrs=1_其他:安卓&attrs=2_5寸:6寸 ，筛选条件：1号属性为【其他】或【安卓】，2号属性为【5寸】或【6寸】
     */
    private Integer hasStock;
    private String skuPrice;  // 价格区间
    private List<Long> brandId;  // 品牌id
    private List<String> attrs; // 按照属性进行筛选

    // 分页
    private Integer pageNum; // 页码
}
